package com.example.mapper;

import com.example.entity.NewPassword;
import com.example.entity.Page;
import com.example.entity.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface UserMapper {
    // 用户登录的方法
    public User login(User user);

    // 根据用户账号密码查询用户状态的方法
    public User findUserState(User user);

    // 用户登录时修改上次登录时间的方法
    public int UpdateLastLoginTime(User user);

    // 用户注册的方法
    public int addUser(User user);

    // 分页的方法
    public List<User> findAllUser(Page page);

    // 查询数据总条数的方法
    public List<User> findAll();

    // 修改用户的方法
    public int editUser(User user);

    // 通过id查询用户的方法
    public User findUserById(int uid);

    // 修改用户密码的方法
    public int editPassword(NewPassword password);

    // 删除用户的方法（优）
    public int delUser(User user);

    // 删除用户的方法（普）
    public int deleteUser(User user);

    // 重置密码的方法
    public int resetPwd(User user);

    // 分页模糊查询用户的的方法
    public List<User> searchUser(@Param("page") Page page, @Param("user") User user);

    // 分页模糊查询用户条数的方法
    public List<User> searchAllUser(User user);

    // 启用用户的方法
    public int enableUser(User user);

    // 批量禁用用户的方法
    public int deleteUsersById(@Param("ids") int[] ids);
}
